import { _decorator, Component, EventTouch, Input, input, Node, Vec3 } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('CityMove')
export class CityMove extends Component {
    // 显示层
    @property(Node)
    ShowNode: Node = null;

    private _moveSpeed: number = 1; // 移动速度
    start() {
        input.on(Input.EventType.TOUCH_MOVE, this.onTouchMove, this);
    }

    onTouchMove(event: EventTouch) {
        // 当点击某个建筑物之后，移动到别的位置时需要要取消之前的点击事件
        this.ShowNode.removeAllChildren();
        
        const delta = event.getDelta(); // 获取触摸点移动的距离
        const selefPos = this.node.getPosition(); // 获取节点当前位置
        const newPos = selefPos.add(new Vec3(delta.x, delta.y, 0)); // 计算新位置
        // 判断新位置是否在有效范围内
        if (newPos.x < 980 && newPos.x > -980 && newPos.y < 165 && newPos.y > -165) {
            // 更新节点位置，移动速度为_moveSpeed
            this.node.setPosition(newPos.multiplyScalar(this._moveSpeed));
        }
    }

    onDestroy() {
        input.off(Input.EventType.TOUCH_MOVE, this.onTouchMove, this);
    }
}


